const list = ['navigateTo', 'redirectTo', 'reLaunch', 'switchTab', 'navigateBack',];
// 用遍历的方式分别为,uni.navigateTo,uni.redirectTo,uni.reLaunch,uni.switchTab,uni.navigateBack这5个路由方法添加拦截器
list.forEach((item) => {
  uni.addInterceptor(item, {
    invoke(args) {
      return intercept(args);
    },
  });
});


/**
 * 拦截操作
 * @param args
 */
export const intercept = (args) => {
  const userStore = useUserStore();
  // 判断是否有登陆
  if (userStore.token) {
    if (args.url) {
      let urlPath = args.url;
      let toPath = urlPath.split("?")[0];
      if (toPath == '/pages/login/index') {
        return false
      }
    }
    // 如果还未获取用户信息
    if (!userStore.roles.length){
      userStore.getInfo().catch(err => {
        userStore.logOut();
      })
    }
  }

  return true;
}
